<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <!--  引入vue.js-->
    <script src="js/vue.js"></script>
<!--    引入axios.js-->
    <script src="js/axios-0.18.0.js"></script>
</head>
<body>
    <div id="app">
        用户名:<input type="text" v-model="user.name"> <br>
        密码:<input type="password" v-model="user.password"> <br>

        <input type="button" value="登录" @click="login()"> <br>
        <input type="button" value="登录2" @click="login2()">
    </div>
</body>

<script>

    new Vue({
        el:"#app",
        //定义数据模型
        data:{
            user:{
                name:"",
                password:""
            }
        },
        //定义vue对象的行为
        methods:{
            login(){
                //发送异步请求，将name和password带到后台进行登录校验

                //通过这种方式携带参数时，内部通过请求体将参数以 key=value&key2=value2...这种格式发送
                axios.post("/user/login","name="+this.user.name+"&password="+this.user.password)
                        .then(resp=>{
                            let data = resp.data;
                            alert(data)
                        });
            },

            login2(){
                axios.post("/user/login2",this.user)
                        .then(resp=>{
                            let data = resp.data;
                            alert(data)
                        });
            }
        },
        //监听机制，监听指定属性的变化（一旦属性发生值的改变，我们实现写好的监听回调方法会执行）
        watch:{

        },
        //计算属性：本质还是一个属性，只不过这个属性的值需要通过业务运算获取，而且我们只需要运算一次
        computed:{

        },

        //Vue对象创建完成，但是和页面元素没有任何关系的阶段
        created(){
        },

        //Vueu对象中的数据和页面元素完成绑定完成后的阶段
        mounted(){
        }
    });

</script>

</html>